package com.wgy.designmode.action.chain;

import com.wgy.designmode.action.chain.handle.AbstractLogger;
import com.wgy.designmode.action.chain.handle.DebugLogger;

/**
 * 责任链模式
 * 示例：日志记录框架
 * debug日志类记录：debug、info、warn、error；
 * info日志类记录：info、warn、error；
 * warn日志类记录：warn、error；
 * error日志类记录：error
 * 使用场景：当有多个对象可以处理请求，且具体由哪个对象处理由运行时决定时；
 *         当需要向多个对象中的一个提交请求，而不想明确指定接收者时。
 *
 */
public class ChainPatternDemo {

    public static void main(String[] args) {

        AbstractLogger debug = new DebugLogger();

        debug.logMessage(1, "这是一条debug消息");
        System.out.println("---------------------------------------");

        debug.logMessage(2, "这是一条info消息");
        System.out.println("---------------------------------------");

        debug.logMessage(3, "这是一条warn消息");
        System.out.println("---------------------------------------");

        debug.logMessage(4, "这是一条error消息");

    }
}


